Abstraction
Expose high level handles
class CoffeeMachine {
private var isWaterHot = false
private fun makeEspresso() { ... }
private fun makeLatte() { ... }
public fun makeCoffee(coffeeType: CoffeeType) {
when(coffeeType) {
Espresso -> makeEspresso()
Latte -> makeLatte()
}
}
}